var sessStorage = window.sessionStorage;

function cartService() {
    var _cartService = {};

    // init cart in session storage
    if (!sessStorage.getItem('o2oc_cart')) {
        sessStorage.setItem('o2oc_cart', '{}');
    }

    _cartService.getCart = function(cId) {
        if (!cId) {
            return [];
        }
        var cart = JSON.parse(sessStorage.getItem('o2oc_cart'));
        var customerCart = cart[cId];
        if (!customerCart) {
            cart[cId] = [];
            sessStorage.setItem('o2oc_cart', JSON.stringify(cart));
        }
        return customerCart;
    }

    _cartService.setCart = function(cId, customerCart) {
        var cart = JSON.parse(sessStorage.getItem('o2oc_cart'));
        cart[cId] = customerCart;
        sessStorage.setItem('o2oc_cart', JSON.stringify(cart));
    }

    _cartService.getTotalPrice = function(cId) {
        var cart = this.getCart(cId);
        var totalPrice = 0.0;
        if (cart instanceof Array) {
            cart.forEach(function(item) {
                totalPrice += item.num * item.unitPrice;
            });
        }
        return totalPrice;
    }

    return _cartService;
}

module.exports = cartService;